/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package cube.estructura.dom;

import cube.estructura.genericos.Coneccion;
import cube.estructura.obj.Reserva;
import cube.estructura.per.ReservaPer;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Leonardo
 */
public class ReservaDom
{  
   public static Reserva obtenerReserva(long xIdClubDeportivo, long xIdCancha, long xDia, String xHora, long xIdUsuario) throws Exception
   {  
       Reserva objReserva = new Reserva();
       Coneccion objCon = new Coneccion();
       Connection con = objCon.getConeccion();

       try
       {
           objReserva = ReservaPer.obtenerReserva(con, xIdClubDeportivo, xIdCancha, xDia, xHora, xIdUsuario);
       }
       catch (Exception ex)
       {
           con.rollback();
           Logger.getLogger(ReservaDom.class.getName()).log(Level.SEVERE, null, ex);
           throw new Exception("Dominio--> " + ex.getMessage());
       }
       finally
       {
           con.close();
       }
       return objReserva;
   }

   public static boolean existeReserva(long xIdClubDeportivo, long xIdCancha, long xDia, String xHora, long xIdUsuario) throws Exception
   {  
       boolean existe;
       Coneccion objCon = new Coneccion();
       Connection con = objCon.getConeccion();

       try
       {
           existe = ReservaPer.existeReserva(con, xIdClubDeportivo, xIdCancha, xDia, xHora, xIdUsuario);
       }
       catch (Exception ex)
       {
           con.rollback();
           Logger.getLogger(ReservaDom.class.getName()).log(Level.SEVERE, null, ex);
           throw new Exception("Dominio--> " + ex.getMessage());
       }
       finally
       {
           con.close();
       }
       return existe;
   }

   public static ArrayList<Reserva> obtenerColeccionReserva() throws Exception
   {  
       ArrayList<Reserva> colReserva = new ArrayList<Reserva>();
       Coneccion objCon = new Coneccion();
       Connection con = objCon.getConeccion();

       try
       {
           colReserva = ReservaPer.obtenerColeccionReserva(con);
       }
       catch (Exception ex)
       {
           con.rollback();
           Logger.getLogger(ReservaDom.class.getName()).log(Level.SEVERE, null, ex);
           throw new Exception("Dominio--> " + ex.getMessage());
       }
       finally
       {
           con.close();
       }
       return colReserva;
   }

   public static void altaReserva(Reserva xObjReserva) throws Exception
   {  
       Coneccion objCon = new Coneccion();
       Connection con = objCon.getConeccion();

       try
       {
           ReservaPer.altaReserva(con, xObjReserva);
           con.commit();
       }
       catch (Exception ex)
       {
           con.rollback();
           Logger.getLogger(ReservaDom.class.getName()).log(Level.SEVERE, null, ex);
           throw new Exception("Dominio--> " + ex.getMessage());
       }
       finally
       {
           con.close();
       }
   }

   public static void bajaReserva(Reserva xObjReserva) throws Exception
   {  
       Coneccion objCon = new Coneccion();
       Connection con = objCon.getConeccion();

       try
       {
           ReservaPer.bajaReserva(con, xObjReserva);
           con.commit();
       }
       catch (Exception ex)
       {
           con.rollback();
           Logger.getLogger(ReservaDom.class.getName()).log(Level.SEVERE, null, ex);
           throw new Exception("Dominio--> " + ex.getMessage());
       }
       finally
       {
           con.close();
       }
   }

   public static void modificaReserva(Reserva xObjReserva) throws Exception
   {  
       Coneccion objCon = new Coneccion();
       Connection con = objCon.getConeccion();

       try
       {
           ReservaPer.modificaReserva(con, xObjReserva);
           con.commit();
       }
       catch (Exception ex)
       {
           con.rollback();
           Logger.getLogger(ReservaDom.class.getName()).log(Level.SEVERE, null, ex);
           throw new Exception("Dominio--> " + ex.getMessage());
       }
       finally
       {
           con.close();
       }
   }
}

